home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-21 / qemm7ref.zip / STEALTH.TEC < prev    next >
Text File  |  1993-06-08  |  17KB  |  376 lines

  1.  
  2.  
  3.                  Troubleshooting Stealth ROM
  4.  
  5.  
  6.   This QEMM 7 technote is an abridged version of a technical
  7.   bulletin that is available through our standard support channels.
  8.   The information contained in this version pertains ONLY to QEMM
  9.   version 7.0.  If you need information relating to earlier versions
  10.   of QEMM you can obtain the unabridged version from the following
  11.   sources:
  12.  
  13.   Quarterdeck Technical Support BBS:  STEALTH.TEC
  14.                          CompuServe:  STEALT.ZIP
  15.                               Q/FAX:  #205
  16.  
  17.  
  18.   Subject: Stealth ROM may seem mysterious, but it really is not.
  19.   This technote tells you how to diagnose and solve problems
  20.   related to the use of the Stealth ROM feature of QEMM.
  21.  
  22.  
  23.   This document tells you how to diagnose and solve problems
  24.   related to the use of the Stealth ROM feature.  Please review the
  25.   information in PRODUCTS.TEC before beginning the steps outlined
  26.   in this technote.  This technote contains information on various
  27.   hardware and software products that require specific excludes or
  28.   other parameters when used with Stealth ROM, and you may find the
  29.   information you need here.
  30.  
  31.   If you are reading this technote because QEMM displayed the
  32.   message "CANNOT FIND ROM HANDLER FOR INTERRUPT XX" you should
  33.   instead refer to technote XSTI.TEC which was installed in your
  34.   QEMM\TECHNOTE directory at the time you installed QEMM.
  35.  
  36.  
  37.   A SIDE NOTE:
  38.   QEMM's Stealth ROM feature only relocates those ROMs which are
  39.   accessed through the use of interrupts. A ROM that is not
  40.   Stealthed may still have regions that are never used during the
  41.   system's normal operation. Some disk ROMs, video ROMs, and
  42.   devices that only use their ROMs during bootup (before the
  43.   CONFIG.SYS is loaded) fit into this category.  You may be able to
  44.   get more High RAM by INCLUDING these unused regions on the
  45.   QEMM386.SYS device driver line in CONFIG.SYS.  To find out what
  46.   addresses you can include, run an Analysis procedure (explained
  47.   in Chapter 9 of the QEMM manual). Then use the INCLUDE parameter
  48.   to include the addresses (see Chapter 7 of the QEMM manual).
  49.  
  50.  
  51.                             SECTION ONE
  52.   STEP ONE:
  53.  
  54.   The first step is to ascertain whether Stealth ROM is involved
  55.   with the problem.  Remove the Stealth ROM parameter (ST:M or
  56.   ST:F) from the QEMM device line in your CONFIG.SYS file.  Reboot
  57.   your computer and try to duplicate the problem.  If the problem
  58.   still happens, then Stealth ROM is not causing the problem, and
  59.   you should refer to the troubleshooting section of your QEMM
  60.   manual for further information.
  61.  
  62.   STEP TWO:
  63.  
  64.   If Stealth ROM is involved in the problem, add Stealth ROM
  65.   parameters ST:M and XST=F000 to the QEMM device line in the
  66.   CONFIG.SYS file.  Your QEMM line would look something like this:
  67.  
  68.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M XST=F000
  69.  
  70.   Reboot the computer.  If this step solves the problem, go on to
  71.   STEP THREE; if it does not, go on to SECTION TWO.
  72.  
  73.   STEP THREE:
  74.  
  75.   If XST=F000 solves your problem replace this parameter with
  76.   X=F000-FFFF, reboot your computer, and try again to create the
  77.   problem.  The QEMM line in your CONFIG.SYS file would look
  78.   something like this:
  79.  
  80.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=F000-FFFF
  81.  
  82.   If you cannot recreate the problem with the above line, add the
  83.   parameter FSTC to the end of the line as follows:
  84.  
  85.         DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=F000-FFFF FSTC
  86.  
  87.   and reboot.  If this step solves the problem, continue on.  If it
  88.   does not (and FSTC may not work in all circumstances) then remove
  89.   the FSTC parameter and reboot with the previous QEMM line.  In
  90.   either case, run Manifest (by typing MFT from the DOS prompt) and
  91.   look at the QEMM/Analysis screen.  The last line should look
  92.   something like this:
  93.  
  94.                     Fn00 IIII IIII IIII IIOO
  95.  
  96.   The portions of the address space with the O in them are being
  97.   accessed directly.  Some program or piece of hardware is trying
  98.   to read the contents of the ROM here directly, rather than
  99.   accessing them through interrupts.  This portion of the address
  100.   space must be allowed to be accessed directly.  This is done by
  101.   using an EXCLUDE statement to prevent QEMM from mapping memory
  102.   into this area.  In our example the target region is FE00-FFFF.
  103.   The appropriate EXCLUDE is X=FE00-FFFF and the QEMM line would
  104.   look like this:
  105.  
  106.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=FE00-FFFF
  107.  
  108.   This EXCLUDE allows Stealth ROM to do its job and costs you only
  109.   8K of High RAM.
  110.  
  111.   STEP FOUR:
  112.  
  113.   If XST=F000 solves your problem while X=F000-FFFF does not, try
  114.   using ST:F instead of ST:M.  You may end up with more High RAM
  115.   with ST:F than with ST:M and XST=F000.
  116.  
  117.                               SECTION TWO
  118.  
  119.   PLEASE NOTE:  This section is ONLY for users with video ROM.
  120.   Hercules-compatible monochrome and CGA systems do not have video
  121.   ROM; therefore, this section does not apply to users with such
  122.   systems.
  123.  
  124.   On most systems, the Video ROM is located at C000-C7FF and uses
  125.   32K of upper memory address space.  Some machines have a video
  126.   ROM elsewhere, usually E000-E7FF.  If this is true of your
  127.   system, you should use E000 (or wherever your video ROM begins)
  128.   instead of C000.  IBM PS/2 Micro Channel machines and other Micro
  129.   Channel machines have their video ROM at E000-EFFF; when using
  130.   the XST parameter on such a machine, you would use XST=E000 when
  131.   performing the steps outlined in this section.  See the
  132.   instructions in STEP NINE for the proper use of the XST=E000
  133.   parameter on a Micro Channel machine.
  134.  
  135.   STEP FIVE:
  136.  
  137.   If XST=F000 does not solve your problem, try XST=C000.  The QEMM
  138.   line of the config.sys would look like this:
  139.  
  140.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M XST=C000
  141.  
  142.   If XST=C000 does not work, go on to STEP THREE.  If XST=C000 does
  143.   work, go on to STEP SIX.
  144.  
  145.   STEP SIX:
  146.  
  147.   If XST=C000 solves the problem, try placing the Page Frame at
  148.   C000.  Do this only if the entire C000 range is available--that
  149.   is, no device is using address space between C000 and CFFF for
  150.   Adapter ROM or RAM.  The QEMM line of the CONFIG.SYS would look
  151.   like this:
  152.  
  153.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M FR=C000
  154.  
  155.   If this works, this may be an acceptable solution.  All the
  156.   address space in which High RAM can be created is being used in
  157.   this configuration.  If this step does not work (or if you cannot
  158.   put the Page Frame at C000) go on to STEP SEVEN:
  159.  
  160.   If XST=C000 solves the problem but you do not want to put the
  161.   Page Frame at C000 (or cannot for some reason) then try the
  162.   parameter F10:N (or FASTINT10:N) which tells QEMM to allow the
  163.   video ROM's own code to be used.  By default QEMM replaces some
  164.   of the video ROM's code with its own video code.  This parameter
  165.   tells QEMM not to perform this function.  The QEMM line of the
  166.   CONFIG.SYS would look like this:
  167.  
  168.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M F10:N
  169.  
  170.   If this step works, all ROMs are being Stealthed.  (You may
  171.   choose to try STEP EIGHT as an alternative.)  If this step does
  172.   not work, go on to STEP EIGHT.
  173.  
  174.   STEP EIGHT:
  175.  
  176.   If XST=C000 solves the problem but FR=C000 or FASTINT10:N does
  177.   not (or you either cannot put the Page Frame at C000 or do not
  178.   want to use FASTINT10:N) then replace XST=C000 with X=C000-C7FF.
  179.   The QEMM line of the config.sys would look like this:
  180.  
  181.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=C000-C7FF
  182.  
  183.   If this works, add the parameter FSTC to the QEMM line:
  184.  
  185.        DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=C000-C7FF FSTC
  186.  
  187.   Reboot your computer.  If this step works, continue on; if this
  188.   step does not work (and FSTC may not work in all circumstances)
  189.   then remove the FSTC parameter and reboot with the previous QEMM
  190.   line.
  191.  
  192.   In either case, run Manifest (by typing MFT at the DOS prompt)
  193.   and look at the QEMM/Analysis screen.  The Cn00 line should look
  194.   something like this:
  195.  
  196.                        Cn00 OIII IIII OOOO OOOO
  197.  
  198.   This indicates that the first 4K region of the C000 range (in the
  199.   video ROM) is being accessed directly.  This portion of the
  200.   address space must be EXCLUDED from QEMM's use when Stealth ROM
  201.   is enabled.  The appropriate QEMM line in the CONFIG.SYS would
  202.   be:
  203.  
  204.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M X=C000-C0FF
  205.  
  206.                              SECTION THREE
  207.   STEP NINE:
  208.  
  209.   On some machines there are other ROMs that can be Stealthed;
  210.   often these are disk ROMs.  The same procedure would be used for
  211.   troubleshooting a disk-related problem.  That is, add XST=??00
  212.   (using the beginning address of that particular ROM.)  If this
  213.   solves the problem, replace the XST=??00 with the appropriate
  214.   EXCLUDE (X=??00-!!FF, replacing ??00 and !!00 with the beginning
  215.   and ending addresses of the ROM) to determine whether the problem
  216.   is related to Stealthing or to the fact that some portion of the
  217.   ROM's address space needs to be directly accessible.  The trick
  218.   of making the Page Frame begin at the beginning of the disk ROM
  219.   may also work here as well.
  220.  
  221.   If XST=??00 solves your problem, try replacing it with FR=??00
  222.   (as long as there is a 64K portion of the address space free
  223.   beginning at ??00 and that ?? is a multiple of 16.)  If some
  224.   portion of the address space must be EXCLUDED for Stealth ROM to
  225.   work you should check Analysis with the FSTC and X=??00-!!FF
  226.   parameters on the QEMM line.
  227.  
  228.   Because of the way the ROMs are written for the IBM PS/2 machines
  229.   and, perhaps, other Micro Channel machines, it is necessary to
  230.   load HOOKROM.SYS before QEMM386.SYS in the CONFIG.SYS for
  231.   XST=E000 to work.  For example:
  232.  
  233.            DEVICE=C:\QEMM\HOOKROM.SYS
  234.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M XST=E000
  235.  
  236.   STEP TEN:
  237.  
  238.   Use XST=F000, XST=C000, and XST=??00 simultaneously for all ROMs
  239.   being Stealthed.  Then replace the XSTs one by one with the
  240.   appropriate regular Exclude (X=F000-FFFF, X=C000-C7FF, X=??00-
  241.   !!FF...) and look at the QEMM/ Analysis screen of Manifest to see
  242.   what portions of the address space need to be directly available.
  243.  
  244.   STEP ELEVEN:
  245.  
  246.   If ST:M with XST on all Stealthed ROMs fails, add the following
  247.   parameters to the QEMM line we used in STEP TEN:
  248.  
  249.               FB:N UFP:N VHI:N F10:N
  250.  
  251.   If this works, remove the XSTs one at a time to determine which
  252.   one(s) you actually need.  If an XST alone does not solve the
  253.   problem, turn back to SECTION ONE for help in determining the
  254.   appropriate XST or EXCLUDE while keeping the above parameters.
  255.   The parameters are explained further in the longer, unabridged
  256.   version of this technote as well as in your QEMM manual.
  257.  
  258.   STEP TWELVE:
  259.  
  260.   If ST:M does not work, try ST:F instead.  If ST:F does not work,
  261.   try ST:F XST=C000 (and XST=??00) for Stealthed ROMs other than
  262.   the one(s) overlain by the Page Frame.
  263.  
  264.   STEP THIRTEEN:
  265.  
  266.   If none of these steps solves the problem, Quarterdeck's Testing
  267.   and Compatibility Department want to know what program or device
  268.   is failing (and at what point.)  Please contact our Technical
  269.   Support staff so that our technicians can get all the necessary
  270.   information about your problem.
  271.  
  272.  
  273.   ADDITIONAL INFORMATION ABOUT STEALTH ROM AND RELATED ISSUES:
  274.  
  275.   1) WHAT ARE ADVANCED DISK FEATURES AND VHI:N?
  276.  
  277.   The BIOS has a set of function calls intended for use by
  278.   multitasking programs.  These are Int 15, functions 90 and 91.
  279.   The system ROM or disk ROM may issue the Int 15, fn 90 call while
  280.   it is waiting for the disk controller to read or write a sector,
  281.   allowing other programs to execute during this wait.  When the
  282.   sector is ready, the disk interrupt handler issues an Int 15, Fn
  283.   91, signaling the multitasking program that the disk information
  284.   is ready to be processed by the system or disk ROM.
  285.  
  286.   Some disk caches hook this call to allow your system to go ahead
  287.   and execute your current program while the system or disk ROM is
  288.   waiting for its requested sector.  Whereas these caches preserve
  289.   the stack and register state for the BIOS and the application
  290.   when doing this pseudo-multitasking, they do not preserve the
  291.   mapping of the page frame.  Therefore, if the BIOS uses the Page
  292.   Frame itself (as does Stealth ROM), this could generate conflicts
  293.   and system failures.  Since no known disk cache does the proper
  294.   Page Frame preservation, QEMM automatically suppresses INT 15,
  295.   function 90 calls from the BIOS, effectively disabling advanced
  296.   disk features.  Caches that save and restore the Page Frame when
  297.   using advanced disk features can use a programming interface to
  298.   QEMM to re-enable advanced disk features.
  299.  
  300.   You may defeat QEMM's defeating of this feature with the
  301.   VIRTUALHDIRQ:N (VHI:N) parameter on the QEMM device line in your
  302.   CONFIG.SYS file.  If your cache has these "Advanced Features" and
  303.   does not save and restore the Page Frame you will crash or
  304.   corrupt data on the cached drive(s).
  305.  
  306.   2)  CAN I LOAD A DRIVER THAT USES ROM BEFORE QEMM?
  307.  
  308.   You can load a device driver that uses a ROM before QEMM and
  309.   still Stealth that ROM by loading the driver HOOKROM.SYS before
  310.   you load this driver. HOOKROM is installed in your QEMM
  311.   directory.  Here is an example of a CONFIG.SYS file that loads
  312.   HOOKROM, then a driver that uses a ROM, then QEMM with Stealth
  313.   ROM enabled:
  314.  
  315.            DEVICE=C:\QEMM\HOOKROM.SYS
  316.            DEVICE=C:\????????.SYS
  317.            DEVICE=C:\QEMM\QEMM386.SYS RAM ST:M
  318.  
  319.   3)  WHY DOES XST=E000 ONLY WORK ON PS/2 MACHINES IF I USE
  320.       HOOKROM.SYS?
  321.  
  322.   The code in the E000-EFFF portion of the ROM on PS/2 (and perhaps
  323.   other Micro Channel machines) is not directly pointed to by the
  324.   interrupt table.  The interrupt table points to addresses in
  325.   F000-FFFF, which then point to the appropriate code in the E000-
  326.   EFFF segment.  You can see this in the FirstMeg/ Interrupts
  327.   section of Manifest.  When you load HOOKROM.SYS, it traces down
  328.   the redirection of the interrupts to the place where the
  329.   executing code begins, so that interrupts that are serviced by
  330.   code in the E000-EFFF segment actually point to addresses in the
  331.   E000-EFFF segment.  The use of HOOKROM.SYS is discussed in STEP
  332.   NINE of the troubleshooting section of this technote.
  333.  
  334.   4)  WHY DOES MY COMPUTER'S SETUP PROGRAM NOT COME UP WHEN ST:M
  335.       IS ENABLED?
  336.  
  337.   Some machines have a built-in System Setup program in the BIOS
  338.   ROM that can be popped up at any time.  Using Stealth ROM might
  339.   make this feature inaccessible to you after your system has
  340.   booted.  Because the Setup program accesses the ROM directly, you
  341.   must EXCLUDE the portion of address space where it is stored in
  342.   order for it to work after QEMM has been loaded and Stealth ROM
  343.   enabled.  On most machines this Setup program is found in F000-
  344.   F7FF.
  345.  
  346.   You may decide that you would rather have access to the Setup
  347.   program ONLY on bootup and use this portion of the address space
  348.   for High RAM.  Since you must reboot your computer after making
  349.   changes in your CMOS Setup anyway, most users consider this a
  350.   fair trade.
  351.  
  352.   SUMMARY:
  353.  
  354.   The Stealth ROM technology has been exhaustively tested; however,
  355.   due to the wide variety of software and hardware in the PC world,
  356.   it cannot be guaranteed to work with every configuration.  The
  357.   actual Stealthing of interrupts is very successful.  The most
  358.   common failures are due to programs (or other ROMs) trying to
  359.   access a portion of the ROM directly, rather than by means of
  360.   interrupt.
  361.  
  362.   If you are interested in a longer, highly technical explanation
  363.   of Stealth ROM, read the unabridged version of this technical
  364.   bulletin, available through our standard support channels.  See
  365.   CONTACT.TEC in your QEMM\TECHNOTE directory for information on
  366.   obtaining technotes.
  367.  
  368.   If you experience a problem that you are unable to resolve using
  369.   the steps outlined in this technical bulletin, Quarterdeck would
  370.   very much like to hear about it.
  371.  
  372.   ****************************************************************
  373.   This technical note may be copied and distributed freely as long
  374.   as it is distributed in its entirety and it is not distributed
  375.   for profit.  Copyright (C) 1991-3 by Quarterdeck Office Systems
  376.   ******************* E N D   O F   F I L E **********************